package com.mt.repair.dao.repairManagement;

import com.mt.common.core.web.base.PageDTO;
import com.mt.common.core.web.base.PageResultDTO;
import com.mt.repair.entity.repairManagement.DeviceCatUser;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;
import org.apache.ibatis.annotations.Param;
import java.util.List;

@Mapper
@Component(value = "deviceCatUserDao")
public interface DeviceCatUserDao {

    /**
    * 根据分页参数查询设备用户关联表集合
    *
    * @param pageDTO 分页条件
    */
    public List<DeviceCatUser> findDeviceCatUsers(PageDTO pageDTO);

    /**
    * 查询全部设备用户关联表集合
    *
    */
    public List<DeviceCatUser> findAllDeviceCatUsers();

    /**
    * 查询所有设备用户关联表集合(只提取ID 和 Name)
    *
    */
    public List<DeviceCatUser> findAllDeviceCatUsersWithIdName();

    /**
    * 根据名称查询设备用户关联表集合(只提取ID 和 Name)
    *
    * @param deviceCatUserName 名称
    */
    public List<DeviceCatUser> findDeviceCatUsersWithIdNameByName(@Param("deviceCatUserName") String deviceCatUserName);

    /**
    * 根据ID查询指定的设备用户关联表(只提取ID 和 Name)
    *
    * @param deviceCatUserId Id
    */
    public DeviceCatUser findDeviceCatUsersWithIdNameById(@Param(" deviceCatUserId") Long deviceCatUserId);

    /**
    * 根据分页参数查询设备用户关联表集合的数量
    *
    * @param pageDTO 分页条件
    */
    public Long findDeviceCatUserTotalCount(PageDTO pageDTO);

    /**
    * 根据ID查询指定的设备用户关联表
    *
    * @param deviceCatUserId Id
    */
    public DeviceCatUser findDeviceCatUser(@Param("deviceCatUserId") Long deviceCatUserId);

    /**
    * 根据ID查询指定的设备用户关联表(包含外键)
    *
    * @param deviceCatUserId Id
    */
    public DeviceCatUser findDeviceCatUserWithForeignName(@Param("deviceCatUserId") Long deviceCatUserId);

    /**
    * 新增设备用户关联表
    *
    * @param deviceCatUser 实体对象
    */
    public Long saveDeviceCatUser(DeviceCatUser deviceCatUser);

    /**
    * 更新设备用户关联表
    *
    * @param deviceCatUser 实体对象
    */
    public Long updateDeviceCatUser(DeviceCatUser deviceCatUser);

    /**
    * 根据ID删除设备用户关联表
    *
    * @param deviceCatUserId ID
    */
    public Long deleteDeviceCatUser(@Param("deviceCatUserId") Long deviceCatUserId);

    Long findDeviceCatUserByUserAndDevice(@Param("userId") Long userId, @Param("deviceId") Long deviceId);
}
